package com.todo.strategy.offline.iface.response;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author zhangwenxiang
 * @date 2024/3/17 19:29
 * @description
 */
@Data
@Schema(title = "平台攻略关联出参",description = "平台攻略关联出参")
public class PlatformStrategyRelationResp {


    @JsonSerialize(using = ToStringSerializer.class)
    @Schema(title = "当前第几天",description = "当前第几天")
    private Integer currentDay;

    @Schema(title = "当天关联列表",description = "当天关联列表")
    private List<DayRelation> dayRelation;


    @Data
    public static class DayRelation{
        /**
         * 主键
         */
        @JsonSerialize(using = ToStringSerializer.class)
        @Schema(title = "主键",description = "主键")
        private Long id;
        /**
         * 业务场景 平台攻略、用户攻略、旅游卡攻略等
         */
        @Schema(title = "业务场景",description = "平台攻略、用户攻略、旅游卡攻略")
        private Integer businessScene;
        /**
         * 攻略id
         */
        @JsonSerialize(using = ToStringSerializer.class)
        @Schema(title = "攻略id",description = "攻略id")
        private Long strategyId;
        /**
         * 标题
         */
        @Schema(title = "标题",description = "标题")
        private String title;
        /**
         * 关联类型
         */
        @Schema(title = "关联类型",description = "关联类型")
        private Integer relationType;
        /**
         * 关联类型
         */
        @Schema(title = "关联类型",description = "关联类型")
        private String relationId;
        /**
         * 当天开始时间
         */
        @Schema(title = "当天开始时间",description = "当天开始时间")
        private String startTime;
        /**
         * 关联名称
         */
        @Schema(title = "关联名称",description = "关联名称")
        private String relationName;
        /**
         * 计划第几天
         */
        @Schema(title = "计划第几天",description = "计划第几天")
        private Integer planDay;
        /**
         * 旅游规划、建议
         */
        @Schema(title = "旅游规划、建议",description = "旅游规划、建议")
        private Suggest suggest;
        /**
         * 时间花费 - 分钟
         */
        @Schema(title = "时间花费 - 分钟",description = "时间花费 - 分钟")
        private Integer timeCost;
        /**
         * 金额花费
         */
        @Schema(title = "金额花费",description = "金额花费")
        private BigDecimal moneyCost;
    }

    @Data
    public static class Suggest {
        /**
         * 出行规划
         */
        @Schema(title = "出行规划",description = "出行规划")
        private String travelPlan;
        /**
         * 出行备注
         */
        @Schema(title = "出行备注",description = "出行备注")
        private String travelRemark;
        /**
         * 出行建议
         */
        @Schema(title = "出行建议",description = "出行建议")
        private String travelSuggest;
        /**
         * 必备商品列表
         */
        @Schema(title = "必备商品列表",description = "必备商品列表")
        private List<String> necessaryItems;
    }


}
